<?php
class TcContrato extends AppModel {
	var $name = 'TcContrato';

	var $validate=array(
		'mg_cliente_id' => array(
				'novacio' => array(
					'rule' => 'notEmpty',
					'message' => 'El campo no puede estar vacio')),
			'numero_contrato' => array(
				'novacio' => array(
					'rule' => 'notEmpty',
					'message' => 'Ya existe ese numero de recibo')),
			'modem' => array(
				'novacio' => array(
					'rule' => 'isUnique',
					'message' => 'Ya existe ese numero de modem')),
			'contrato' => array(
				'unico' => array(
					'rule' => 'contratoesunico',
					'message' => 'Ya existe ese numero de contrato para esa colonia'),
				'novacio' => array(
					'rule' => 'notEmpty',
					'message' => 'El campo no puede estar vacio')),
		'fecha_instalacion' => array(
				'novacio' => array(
					'rule' => 'notEmpty',
					'message' => 'El campo no puede estar vacio'),
				'UNICO' => array(
					'rule'=> array('date','dmy') ,
					'message' => 'fecha valida')),
		'descripcion' => array(
				'novacio' => array(
					'rule' => 'notEmpty',
					'message' => 'El campo no puede estar vacio')),
		'telefono' => array(
				'unico' => array(
					'rule' => 'esunico' ,
					'message' => 'El telefono ya existe'),
				'tel_valido' => array(
					'rule' => 'tel_valido' ,
					'message' => 'Formato Incorrecto, debe ser 999-9999 o 9999-9999')),
	
		'mg_colonia_id' => array(
				'novacio' => array(
					'rule' => 'notEmpty',
					'message' => 'El campo no puede estar vacio')));

	var $belongsTo = array(
		'TcEstadoContrato' => array(
			'className' => 'TcEstadoContrato',
			'foreignKey' => 'tc_estado_contrato_id',
			'conditions' => '',
			'fields' => '',
			'order' => ''
			),
			'MgColonia' => array(
			'className' => 'MgColonia',
			'foreignKey' => 'mg_colonia_id',
			'conditions' => '',
			'fields' => '',
			'order' => ''
			),
			'TcAnchoDeBanda' => array(
			'className' => 'TcAnchoDeBanda',
			'foreignKey' => 'tc_ancho_de_banda_id',
			'dependent' => false,
			'conditions' => '',
			'fields' => '',
			'order' => '',
			'limit' => '',
			'offset' => '',
			'exclusive' => '',
			'finderQuery' => '',
			'counterQuery' => ''
			));
		var $hasMany = array(
		'TcAccione' => array(
			'className' => 'TcAccione',
			'foreignKey' => 'tc_contrato_id',
			'conditions' => '',
			'fields' => '',
			'order' => ''
			),
			'MgDescuento' => array(
			'className' => 'MgDescuento',
			'foreignKey' => 'tc_contrato_id',
			'conditions' => '',
			'fields' => '',
			'order' => ''
			));

			function beforeSave(){
				if (!empty($this->data['TcContrato']['fecha_instalacion']))
				{
					$this->data['TcContrato']['fecha_instalacion']= date('Y-m-d', strtotime($this->data['TcContrato']['fecha_instalacion']));
				}
				if (!empty($this->data['TcContrato']['fecha_ultimo_pago']))
				{
					$this->data['TcContrato']['fecha_ultimo_pago']= date('Y-m-d', strtotime($this->data['TcContrato']['fecha_ultimo_pago']));
				}
				if (!empty($this->data['TcContrato']['fecha_proximo_pago']))
				{
					$this->data['TcContrato']['fecha_proximo_pago']= date('Y-m-d', strtotime($this->data['TcContrato']['fecha_proximo_pago']));
				}
				return true;
			}

			function esunico($data){
				if (!empty($this->data['TcContrato']['telefono'])) {
					$existe= $this->find('first',array('fields'=>array('telefono'), 'conditions'=>array('TcContrato.telefono'=>$data,'TcContrato.id <>'=>$this->data['TcContrato']['id'], 'TcContrato.tc_estado_contrato_id <>'=>'3')));
					return(empty($existe));
				}
				return true;
			}
			
			function tel_valido($data){
				if (!empty($this->data['TcContrato']['telefono'])) {
				if ( preg_match("/^[0-9]{3,4}-[0-9]{4}$/",$this->data['TcContrato']['telefono'])===0)
					return false;
				}
				return true;
			}
			
			function contratoesunico($data){
				if (!empty($this->data['TcContrato']['id'])) {
				if (!empty($this->data['TcContrato']['mg_colonia_id'])) {
					$existe= $this->find('first',array('fields'=>array('contrato'), 'conditions'=>array('TcContrato.contrato'=>$data,'TcContrato.mg_colonia_id'=>$this->data['TcContrato']['mg_colonia_id'], 'TcContrato.id <>'=>$this->data['TcContrato']['id'])));
					return(empty($existe));
				}
				}
				else{
				if (!empty($this->data['TcContrato']['mg_colonia_id'])) {
					$existe= $this->find('first',array('fields'=>array('contrato'), 'conditions'=>array('TcContrato.contrato'=>$data,'TcContrato.mg_colonia_id'=>$this->data['TcContrato']['mg_colonia_id'])));
					return(empty($existe));
				}
				}	
				return true;
			}
}
?>